package com.delivery.www.dao;

import com.delivery.www.po.Thumb;
import com.delivery.www.po.Collect;
import com.delivery.www.po.Dish;

import java.util.List;

/**
 * @author 12970
 */
public interface DishDao {
    /**
     * 获取店铺下的菜品(分页)
     *
     * @param storeId       店铺id
     * @param dishName      菜品名
     * @param currentPageNo 当前页
     * @param pageSize      页面大小
     * @return 菜品
     */
    List<Dish> getDish(int storeId, String dishName, int currentPageNo, int pageSize);

    /**
     * 添加菜品
     *
     * @param dishName 菜品名
     * @param storeId  店铺id
     * @param price    价格
     * @param describe 描述
     * @return 改变行数
     */
    int addDish(String dishName, int storeId, Float price, String describe);

    /**
     * 修改菜品名
     *
     * @param dishId  菜品id
     * @param newName 新名字
     * @param storeId 店铺id
     * @return 改变行数
     */
    int updateDishName(int dishId, String newName, int storeId);

    /**
     * 修改菜品价格
     *
     * @param dishId  菜品id
     * @param price   价格
     * @param storeId 店铺id
     * @return 改变行数
     */
    int updateDishPrice(int dishId, Float price, int storeId);

    /**
     * 修改菜品描述
     *
     * @param dishId    菜品id
     * @param introduce 简介
     * @param storeId   店铺id
     * @return 改变行数
     */
    int updateDishDescribe(int dishId, String introduce, int storeId);

    /**
     * 删除菜品
     *
     * @param dishId  菜品id
     * @param storeId 店铺id
     * @return 改变行数
     */
    int deleteDish(int dishId, int storeId);

    /**
     * 获取某一个菜品
     *
     * @param dishId 菜品id
     * @return 菜品
     */
    Dish getOneDish(int dishId);

    /**
     * 获取点赞菜品
     *
     * @param thumbs 点赞列表
     * @return 菜品
     */
    List<Dish> getThumbDish(List<Thumb> thumbs);

    /**
     * 获取收藏菜品
     *
     * @param collects 收藏列表
     * @return 菜品
     */
    List<Dish> getCollectDish(List<Collect> collects);

    /**
     * 获取菜品数量
     *
     * @param storeId  店铺id
     * @param dishName 菜品名
     * @return 数量
     */
    int getDishCount(int storeId, String dishName);

    /**
     * 获取店铺下的菜品
     *
     * @param storeId       店铺id
     * @return 菜品
     */
    List<Dish> getDish(int storeId);
}
